slack and surplus variables